package com.boss.salary.service;

import com.boss.salary.entity.SalaryMonthEnd;
import com.boss.sys.ca.user.dto.UserDTO;

import java.lang.reflect.InvocationTargetException;
import java.util.List;
import java.util.Map;

public interface ISalaryMonthEndService {


    /**
     * 第十三月工资：保存
     * @param list
     */
    void saveThirteenthMonthSalary(List<SalaryMonthEnd> list) throws Exception;

    /**
     * 十三月工资：查询十三月工资
     * @param agencyId
     * @return
     */
    List<Map<String,Object>> getThirteenSalaryPage(UserDTO userDTO,String agencyId);

    /**
     * 十三月工资：重新生成
     * @param agencyId
     */
    void physicalDeleteThirteenMonthSalary(String agencyId);

    /**
     * 十三月工资：修改现有十三月工资
     * @param list
     * @return
     */
    void submitThirteenthMonthSalary(List<SalaryMonthEnd> list) throws NoSuchMethodException, InvocationTargetException, IllegalAccessException;

    /**
     * 获取实发工资
     * @param agencyId
     * @return
     */
    Integer getPaidWagesCount(String agencyId,UserDTO userDTO);

    /**
     * 根据单位id获取未审核人数
     * @param agencyId
     * @return
     */
    Integer getUnreviewedPersonCount(String agencyId);
}
